package licode.unisop.provider.info;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 账号认证上下文信息
 *
 * @author WR
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class SiAuthContextIn {
    /**
     * 主会话Token
     */
    private String ssoToken;

    /**
     * 领域标识
     */
    private String realmId;

    /**
     * 用户ID
     */
    private String userId;

    /**
     * 登录用户账号
     */
    private String account;

    /**
     * 登录IP
     */
    private String peerIp;

    /**
     * 登录的方式
     */
    private String authType;

    /**
     * 用户类型
     */
    private String userType;

    /**
     * 登录的角色
     */
    private String roleCodes;

    /**
     * 登录的角色名称
     */
    private String roleNames;

    /**
     * 认证终端信息(WEB、MP、APP、H5)
     */
    private String terminal;

    /**
     * 租户标识
     */
    private String tenantId;

    /**
     * 平台标识
     */
    private String platformId;

    /**
     * 客户端标识
     */
    private String clientId;

    /**
     * 客户端密钥
     */
    private String clientSecret;

    /**
     * 访问令牌过期时间（单位：秒，小于refreshExpired）
     */
    private long accessExpired;

    /**
     * 刷新令牌过期时间（单位：秒，大于accessExpired）
     */
    private long refreshExpired;

    /**
     * 授权类型, 非必填，默认password
     */
    private String grantType;

    /**
     * 授权模式（sso：单点登录；normal：普通登录）
     */
    private String authMode;

    /**
     * 授权范围
     */
    private String scope;

    /**
     * 前端认证状态标识
     */
    private String state;

    /**
     * 票据跳转地址
     */
    private String ticketUri;
}
